1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 import java.math.*;
34
35 public class StrippingZerosTest {
36 public static void main(String argv[]) {
37 BigDecimal [][] testCases = {
38 {new BigDecimal("1.00000"), new BigDecimal("1")},
39 {new BigDecimal("1.000"), new BigDecimal("1")},
40 {new BigDecimal("1"), new BigDecimal("1")},
41 {new BigDecimal("0.1234"), new BigDecimal("0.1234")},
42 {new BigDecimal("0.12340"), new BigDecimal("0.1234")},
43 {new BigDecimal("0.12340000000"), new BigDecimal("0.1234")},
44 {new BigDecimal("1234.5678"), new BigDecimal("1234.5678")},
45 {new BigDecimal("1234.56780"), new BigDecimal("1234.5678")},
46 {new BigDecimal("1234.567800000"), new BigDecimal("1234.5678")},
47 {new BigDecimal("0"), new BigDecimal("0")},
48 {new BigDecimal("0e100"), new BigDecimal("0e100")},
49 {new BigDecimal("0e-100"), new BigDecimal("0e-100")},
50 {new BigDecimal("10"), new BigDecimal("1e1")},
51 {new BigDecimal("20"), new BigDecimal("2e1")},
52 {new BigDecimal("100"), new BigDecimal("1e2")},
53 {new BigDecimal("1000000000"), new BigDecimal("1e9")},
54 {new BigDecimal("100000000e1"), new BigDecimal("1e9")},
55 {new BigDecimal("10000000e2"), new BigDecimal("1e9")},
56 {new BigDecimal("1000000e3"), new BigDecimal("1e9")},
57 {new BigDecimal("100000e4"), new BigDecimal("1e9")},
58
59 {new BigDecimal("1.0000000000000000000000000000"), new BigDecimal("1")},
60 {new BigDecimal("-1.0000000000000000000000000000"), new BigDecimal("-1")},
61 {new BigDecimal("1.00000000000000000000000000001"), new BigDecimal("1.00000000000000000000000000001")},
62 {new BigDecimal("1000000000000000000000000000000e4"), new BigDecimal("1e34")},
63 };
64
65 for(int i = 0; i < testCases.length; i++) {
66
67 if (!(testCases[i][0]).stripTrailingZeros().equals(testCases[i][1])) {
68 throw new RuntimeException("For input " + testCases[i][0].toString() +
69 " did not received expected result " +
70 testCases[i][1].toString() + ", got " +
71 testCases[i][0].stripTrailingZeros());
72 }
73
74 testCases[i][0] = testCases[i][0].negate();
75 testCases[i][1] = testCases[i][1].negate();
76
77 if (!(testCases[i][0]).stripTrailingZeros().equals(testCases[i][1])) {
78 throw new RuntimeException("For input " + testCases[i][0].toString() +
79 " did not received expected result " +
80 testCases[i][1].toString() + ", got " +
81 testCases[i][0].stripTrailingZeros());
82 }
83
84 }
85 }
86 }